home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD001b.dsk / FLASH.CARDS.bas < prev    next >
BASIC Source File  |  2003-06-12  |  7KB  |  172 lines

  1. 0  REM  ** FRENCH FLASH CARDS **
  2. 1  REM  **   COPYRIGHT 1981   **
  3. 2  REM  **    JASON CASTLE    **
  4. 3  REM  ************************
  5. 4 :
  6. 5  REM  * MICROROUTINES *
  7. 6 :
  8. 7  GOTO 100
  9. 9  REM  ** SIMULATED FLASH **
  10. 10  FOR PAUSE = 1 TO 300: NEXT PAUSE: RETURN 
  11. 15  GOSUB 10: FOR K = 1 TO 5: VTAB Y: HTAB X: NORMAL : PRINT T$: GOSUB 10: VTAB Y: HTAB X: INVERSE : PRINT T$: GOSUB 10: NEXT K: NORMAL : RETURN 
  12. 19 :
  13. 20  TEXT : PRINT HM$: HGR : HCOLOR= 3: HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0: RETURN : REM   * HOME, THEN DRAW BOX
  14. 24 :
  15. 25  HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0: RETURN : REM  * DRAW BOX W/O CLEARING SCREEN *
  16. 29  REM    ** CHECK KEYBOARD **
  17. 40  VTAB 11: HTAB 3: INVERSE : PRINT "<CTRL-T>                                   ";: VTAB 11: HTAB 20 - LEN(Q$)/2 +1: PRINT Q$;"<CTRL-R>": NORMAL : RETURN : REM       * CENTER *       
  18. 45  VTAB 11: HTAB 3: INVERSE : PRINT "<CTRL-T>                            ";: HTAB 20 - LEN(A$)/2 +1: PRINT A$;"<CTRL-R>": NORMAL : RETURN : REM               * CENTER *
  19. 50  VTAB 6: HTAB 2: PRINT "FRENCH                             ";: HTAB 9: GET Z$: RETURN 
  20. 55  VTAB 6: HTAB 2: PRINT "        ";: HTAB 29: PRINT "ENGLISH ";: GET Z$: RETURN 
  21. 60  HPLOT 5,5 TO 274,5 TO 274,154 TO 5,154 TO 5,5: RETURN 
  22. 99 :
  23. 100  REM  * INITIALIZATION *
  24. 101 :
  25. 105  TEXT : HOME : ONERR  GOTO 3000
  26. 110  FOR I = 3072 TO 3080:K =  PEEK(I) +K: NEXT I: IF K = 621  THEN  CALL 3072: GOTO 125
  27. 115  PRINT  CHR$(4)"BRUN LOMEM:": &  LOMEM: 16384
  28. 120  PRINT  CHR$(4)"BRUN FRENCH.GEN"
  29. 125 D$ =  CHR$(13) + CHR$(4): REM  * DOS PREFIX *
  30. 130  DIM A(500),Q$(500),A$(500)
  31. 135  REM  * DB$ = DATA BASE
  32. 140 F$ = "INDEX":HM$ =  CHR$(12):RF$ =  CHR$(18):TF$ =  CHR$(20):LF$ =  CHR$(17):EL$ =  CHR$(14): REM   * FILE STRING, HOME, REGULAR FONT, TALL FONT, LARGE FONT, END LINE
  33. 144 :
  34. 145  REM  * TITLE SCREEN *
  35. 146 :
  36. 148  GOSUB 20: GOSUB 60
  37. 150  VTAB 8: HTAB 4: PRINT LF$;"FRENCH<CTRL-R> ";: INVERSE : PRINT "<CTRL-Q>FLASH";: NORMAL : PRINT "<CTRL-R> <CTRL-Q>CARDS"
  38. 155 Y = 8:X = 17:T$ = "FLASH": GOSUB 15: PRINT RF$
  39. 160  VTAB 13: HTAB 15: PRINT "by Jason Castle"
  40. 170  VTAB 18: HTAB 3: INVERSE : PRINT "    Press SPACE BAR to continue ...";: NORMAL 
  41. 175  VTAB 18: HTAB 38: GET Z$
  42. 190  IF Z$ < > CHR$(32)  THEN 175
  43. 195  GOTO 5000
  44. 198 :
  45. 199 :
  46. 200  REM  * DISPLAY FRENCH *
  47. 201 :
  48. 210  GOSUB 400: REM  * DRAW CARD *
  49. 220  FOR J = 1 TO N:Q$ = Q$(J)
  50. 230  GOSUB 40: REM  * CENTER PRINT *
  51. 240  VTAB 6: HTAB 2: PRINT "FRENCH                             ";: HTAB 9: GET Z$
  52. 250  IF Z$ =  CHR$(32)  THEN 260
  53. 251  IF Z$ =  CHR$(13)  THEN 230
  54. 252  IF Z$ = "M"  THEN  GOSUB 900
  55. 253  GOTO 240
  56. 255  IF CHOICE = 3  THEN  GOSUB 200: GOTO 220
  57. 260 A$ = A$(J)
  58. 270  GOSUB 45: REM  * CENTER PRINT ENGLISH *
  59. 275  VTAB 6: HTAB 2: PRINT "        ";: HTAB 29: PRINT "ENGLISH ";: GET Z$
  60. 280  IF Z$ =  CHR$(32)  THEN 290
  61. 281  IF Z$ =  CHR$(13)  THEN 230
  62. 282  IF Z$ = "M"  THEN  GOSUB 900
  63. 285  GOTO 275
  64. 290  NEXT J
  65. 293  PRINT  CHR$(7);
  66. 295  GOSUB 700: GOTO 220
  67. 298 :
  68. 299 :
  69. 300  REM  * DISPLAY ENGLISH *
  70. 310  GOSUB 400: REM   * DRAW CARD *
  71. 320  FOR J = 1 TO N:A$ = A$(J)
  72. 330  GOSUB 45: REM       * CENTER PRINT ENGLISH *
  73. 340  VTAB 6: HTAB 2: PRINT "ENGLISH                            ";: HTAB 10: GET Z$
  74. 350  IF Z$ =  CHR$(32)  THEN 360
  75. 351  IF Z$ =  CHR$(13)  THEN 330
  76. 352  IF Z$ = "M"  THEN  GOSUB 900
  77. 353  GOTO 340
  78. 360 Q$ = Q$(J)
  79. 370  GOSUB 40: REM    * CENTER PRINT FRENCH *
  80. 375  VTAB 6: HTAB 2: PRINT "        ";: HTAB 30: PRINT "FRENCH ";: GET Z$
  81. 380  IF Z$ =  CHR$(32)  THEN 390
  82. 381  IF Z$ =  CHR$(13)  THEN 330
  83. 382  IF Z$ = "M"  THEN  GOSUB 900
  84. 385  GOTO 375
  85. 390  NEXT J
  86. 393  PRINT  CHR$(7);
  87. 395  GOSUB 700: GOTO 320
  88. 398 :
  89. 399 :
  90. 400  REM    * PRINT CARD & PROMPTS "
  91. 410  TEXT : PRINT HM$
  92. 420  HGR : HCOLOR= 3
  93. 430  HPLOT 0,10 TO 279,10 TO 279,150 TO 0,150 TO 0,10
  94. 440  VTAB 2: HTAB 3: PRINT TF$"FRENCH FLASH CARDS";: VTAB 3: PRINT RF$":"
  95. 450  VTAB 3: HTAB 23: PRINT DB$: VTAB 21
  96. 460  HTAB 5: PRINT "Press ";: INVERSE : PRINT "SPACE BAR";: NORMAL : PRINT " to continue."
  97. 465  HTAB 5: PRINT "Press RETURN to repeat a card."
  98. 470  HTAB 5: PRINT "Press ";: INVERSE : PRINT "M";: NORMAL : PRINT " to return to menu."
  99. 480  POKE 32,1: POKE 33,37: POKE 34,6: POKE 35,17
  100. 490  HTAB 2: VTAB 18: PRINT "Number of cards in this set: ";N;
  101. 499 :
  102. 500  REM   * PRINT CARD *
  103. 510  FOR Y = 50 TO 120: HPLOT 10,Y TO 270,Y: NEXT Y: REM         * DRAW CARD *
  104. 520  RETURN 
  105. 599 :
  106. 600  REM  * DIRECTORY OF DATA BASES *
  107. 601  GOSUB 20: VTAB 2: HTAB 12: PRINT TF$"FRENCH FLASH CARDS";RF$: PRINT : PRINT 
  108. 602  HTAB 2: PRINT "The following card sets are available:"
  109. 603 DB$ = "BASENAME"
  110. 605  PRINT D$"OPEN"DB$"FILE"
  111. 610  PRINT D$"READ"DB$"FILE"
  112. 615  INPUT NR
  113. 620  FOR J = 1 TO NR: INPUT R$(J): NEXT J
  114. 625  PRINT D$"CLOSE"
  115. 627  VTAB 7
  116. 630  FOR J = 1 TO NR: HTAB 10: PRINT  CHR$(91);J; CHR$(123)" "R$(J): NEXT J: PRINT 
  117. 635  HTAB 2: INPUT "Which would you like? ";S$:S =  VAL(S$): GOSUB 25
  118. 640  IF S <1  OR S >J  THEN  PRINT  CHR$(7);: VTAB  PEEK(37): PRINT EL$;: GOSUB 25: GOTO 635
  119. 645 DB$ = R$(S)
  120. 650  REM RETURN 
  121. 660 :
  122. 670 :
  123. 699 :
  124. 700  REM    * READ & RANDOMIZE INDEXFILE *
  125. 710 F$ = "INDEX"
  126. 720  PRINT D$"OPEN"DB$" "F$"FILE"
  127. 730  PRINT D$"READ"DB$" "F$"FILE"
  128. 740  INPUT N
  129. 750  FOR I = 1 TO N:A(I) = I: NEXT I
  130. 760  FOR J = 1 TO N: REM  * RANDOMIZE LOOP *
  131. 770 X =  INT((N -J +1) * RND(1) +1)
  132. 780  INPUT Q$(A(X)),A$(A(X))
  133. 790 A(X) = A(N -J +1)
  134. 795  NEXT J
  135. 799 :
  136. 800  PRINT D$"CLOSE": REM  * CLOSE INDEXFILE *
  137. 830  RETURN 
  138. 890 :
  139. 898 :
  140. 899  REM  * MENU *
  141. 900  PRINT HM$: GOSUB 20: REM   * DRAW SQUARE *
  142. 910  VTAB 4: HTAB 2: PRINT TF$"CHOOSE FROM THE FOLLOWING:"
  143. 920  VTAB 7: HTAB 10: PRINT  CHR$(91);"A"; CHR$(123);"  French to English"
  144. 930  HTAB 10: PRINT  CHR$(91);"B"; CHR$(123);"  English to French"
  145. 940  HTAB 10: PRINT  CHR$(91);"C"; CHR$(123);"  New set of cards"
  146. 945  HTAB 10: PRINT  CHR$(91);"X"; CHR$(123);"  Exit"
  147. 950  VTAB 16: HTAB 20: INPUT "WHICH? ";Z$: GOSUB 25
  148. 960  IF Z$ = "A"  THEN 200
  149. 965  IF Z$ = "B"  THEN 300
  150. 970  IF Z$ = "C"  THEN  GOSUB 600: GOTO 900
  151. 973  IF Z$ = "X"  THEN 9000
  152. 975  PRINT  CHR$(7);: GOTO 950
  153. 5000  REM  * MAIN PROGRAM *
  154. 5005  PRINT HM$: REM  * CLEAR SCREEN *
  155. 5025  GOSUB 600: REM  * READ BASENAMEFILE *
  156. 5030  GOSUB 700: REM  * READ INDEXFILE *
  157. 5040  GOTO 900: REM   * MAIN MENU *
  158. 5050  REM ON CHOICE GOSUB 200,300,600
  159. 5060 :
  160. 5999  END 
  161. 6000  REM  * INTRO *
  162. 6010  PRINT "INTRO": RETURN 
  163. 7000  REM  * ERROR ROUTINES *
  164. 7010  PRINT "ERRORS ": RETURN 
  165. 8000  REM  * INSTRUCTIONS *
  166. 8010  PRINT "INSTRUCTIONS": RETURN 
  167. 9000  REM  ** EXIT **
  168. 9010 :
  169. 9020  GOSUB 20
  170. 9050  PRINT HM$: VTAB 10: PRINT "Type 'EXIT' to exit, or press 'RETURN'": PRINT : INPUT "to return to Flash Card program: ";IN$
  171. 9060  IF IN$ < >"EXIT"  THEN 5000
  172. 9070  PRINT HM$: VTAB 12: HTAB 15: PRINT "HIT RESET": END